package com.zynn.service.module.es.service;

import com.baomidou.mybatisplus.service.IService;
import com.zynn.common.pojo.dto.EventDTO;
import com.zynn.service.module.es.entity.Events;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 刘天元
 * @since 2018-07-01
 */
public interface EventsService extends IService<Events> {

    /**
     * @param userId        用户id
     * @param groupIdList   相册id
     * @param eventTypeList 动态类型
     * @param lastEventId   最后一个动态id
     * @param pageSize      每页显示的数据条数
     * @param isAsc         排序是否是升序:true-asc,false-desc
     * @param useLimit      是否使用分页:true-使用,false-不使用
     * @return
     */
    List<EventDTO> getEvents(Long userId, List<Long> groupIdList, List<Integer> eventTypeList, Long lastEventId, Long pageSize, boolean isAsc, boolean useLimit);


    /**
     * 查询用户当天的动态
     *
     * @param userId
     * @param createTime
     * @return
     */
    List<EventDTO> getUserCurrentDayEvents(Long userId, String createTime);

    /**
     * 查询某一个动态
     *
     * @param eventId
     * @return
     */
    EventDTO getEvent(Long eventId);

    /**
     * 查询用户相册内的动态
     *
     * @param userId
     * @param groupId
     * @param lastEventId
     * @param useLimit
     * @return
     */
    List<EventDTO> queryEventByUser(Long userId, Long groupId, Long lastEventId, boolean useLimit);

    /**
     * 查询相册内的动态根据点赞数排序
     *
     * @param groupId
     * @param limit
     * @return
     */
    List<EventDTO> getEventsByLikeSort(Long groupId, Integer limit);

    /**
     * 查询相册内的动态根据资源数排序
     *
     * @param groupId
     * @param limit
     * @return
     */
    List<Map<String, Object>> getEventsByResourceSort(Long groupId, Integer limit);
}
